package main

import "fmt"

/*
* Author: JacksonCoder
* CreateTime: 2025/5/22
 */

// 通道写安全

func Send1(ch chan int) {
	//在写入端关闭，没有太多的通用性
	ch <- 1
	ch <- 2
	ch <- 3
	ch <- 4
	close(ch)
}

func Recv1(ch chan int) {
	for v := range ch {
		fmt.Println(v)
	}
	value := <-ch // 判断不了是否已经读取完毕
	fmt.Println("value: ", value)
}

// 确保通道写安全的最好方式是由负责写通道的协程自己来关闭通道，读通道的协程不要取关闭通道。
func main(){
	var ch = make(chan int , 1)
	go Send1(ch)
	Recv1(ch)
}
